import Vue from 'vue';
import Vuex from 'vuex';
import dormsApi from "@/http/dormsApi";
import loginApi from "@/http/loginApi";

Vue.use(Vuex);

export default new Vuex.Store({
  // 数据仓库，但只做保存，不推荐直接修改state中的变量值，直接通过state修改数据，无法实现响应式
  state: {
    type: sessionStorage.getItem("type"),
    dorms: [],
    userInfo: {},
    menu_active: sessionStorage.getItem("menu_active") //当前激活的菜单项
  },
  // 做数据修改，都是同步方法
  mutations: {
    SET_TYPE(state, val) {
      sessionStorage.setItem("type", val);
      state.type = val;
    },
    SET_USERINFO(state, val) {
      state.userInfo = val;
    },
    //Eclipse大小写：Ctrl + Shift + X
    SET_DORMS(state, val) {
      state.dorms = val;
    },
    SET_MENU_ACTIVE(state, val) {
      sessionStorage.setItem("menu_active", val || '/welcome.html');
      state.menu_active = val;
    }
  },
  // 异步处理的方法，否则也无法实现响应式
  actions: {
    GET_DORMS_ACTIONS(context) {
      dormsApi.findAll().then(res => {
        console.log(res);
        context.commit("SET_DORMS", res.data.data)
      })
    },
    GET_USERINFO_ACTIONS(context) {
      loginApi.getInfo().then(res => {
        console.log(res);
        context.commit("SET_USERINFO", res.data.data.loginUser)
      })
    },
  },
  // 模块，不同功能模块的变量，分块保存
  modules: {}
});
